Programming Questions for Practice
Write a function to test whether a given number is happy number.
#include <stdio.h>
#include <stdlib.h>
int isHappyNumber(int number) {
int lastDigit, sum = number, temp = number;
if(number == 1 || number == 7)
return 1;
while(sum > 9) {
sum = 0;
while(temp > 0) {
lastDigit = temp % 10;
sum = sum + (lastDigit*lastDigit);
temp = temp / 10;
}
if(sum == 1)
return 1;
temp = sum;
}
if(sum == 7)
return 1;
return 0;
}
int main()
{
int number;
printf("enter any number: ");
scanf("%d", &number);
if(isHappyNumber(number))
printf("%d is a Happy number\n", number);
else
printf("%d is not a Happy number\n", number);
return 0;
}
import java.util.Scanner;
public class NumberTest {
static boolean isHappyNumber(int number) {
int lastDigit, sum = number, temp = number;
if(number == 1 || number == 7)
return true;
while(sum > 9) {
sum = 0;
while(temp > 0) {
lastDigit = temp % 10;
sum = sum + (lastDigit*lastDigit);
temp = temp / 10;
}
if(sum == 1)
return true;
temp = sum;
}
if(sum == 7)
return true;
return false;
}
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.print("Enter any decimal number: ");
int number = read.nextInt();
if(isHappyNumber(number))
System.out.println(number + " is a Happy number");
else
System.out.println(number + " is not a Happy number");
}
}
def isHappyNumber(number):
if(number == 1 or number == 7):
return True;
sum, temp = number, number
while(sum > 9):
sum = 0
while(temp > 0):
lastDigit = temp % 10
sum += lastDigit**2
temp //= 10
if(sum == 1):
return True;
temp = sum
if(sum == 1):
return True
return False;
number = int(input("Enter any number: "))
if(isHappyNumber(number)):
print(number, " is a Happy number")
else:
print(number, " is not a Happy number")